package com.easycode.devtool.util;

import java.util.Collection;
import java.util.Map;

/**
 * 备注：集合相关的使用工具类
 * Created by carter on 2015/10/10 17:02.
 */
public final class CollectionUtils {

    public static boolean isArrayNullOrEmpty(byte[] array)
    {
        if(null == array) return  true;

        if(array.length<1) return true;

        return false;
    }

    public static boolean isArrayNullOrEmpty(Object[] array)
    {
        return !isArrayNotNullOrEmpty(array);
    }

    public static boolean isArrayNotNullOrEmpty(Object[] array)
    {
        if(null == array) return  false;

        if(array.length<1) return false;

        return true;
    }



    /**
     * 检查集合不为NULL或者含有元素
     * @param collection 集合
     * @return 结果， true 标识含有元素，否则为空或者不含有元素
     */
    public static boolean isNotNullOrEmpty(Collection collection)
    {
        if(null == collection) return  false;

        if(collection.isEmpty()) return false;

        return true;
    }


    public static boolean isNullOrEmpty(Collection collection)
    {
        return  !isNotNullOrEmpty(collection);
    }


    public static boolean isNotNullOrEmpty(Map map)
    {
        if(null == map) return  false;

        if(map.isEmpty()) return false;

        return true;
    }


    public static boolean isNullOrEmpty(Map map)
    {
        return  !isNotNullOrEmpty(map);
    }


    /**
     * 将数组转换为string，并用分隔符split隔开元素,且为空的元素被忽略掉
     * @param arr
     * @param split
     * @return
     */
    public static String array2String(Object[] arr, String split) {
        if (arr == null || arr.length == 0) {
            return  "";
        }

        StringBuilder sb = new StringBuilder();
        for (Object obj : arr) {
            if (StringUtils.isEmpty(obj)) {
                continue;
            }

            sb.append(split).append(obj.toString());
        }

        return  sb.substring(1);
    }

}
